package ar.edu.siglo21.taller.algoritmo.model;

import java.util.ArrayList;
import java.util.List;

import ar.edu.siglo21.taller.algoritmo.business.Promediable;
import ar.edu.siglo21.taller.algoritmo.exception.MyException;

public class Alumno extends Persona implements Promediable {

	private String legajo = "";
	private List<Materia> lstMaterias;
	private Pila pilaMaterias;

	public List<Materia> getLstMaterias() {
		return lstMaterias;
	}

	public void setLstMaterias(List<Materia> lstMaterias) {
		this.lstMaterias = lstMaterias;
	}

	public Alumno(String apellido, String nombre, int dni, String legajo)
			throws MyException {
		super(apellido, nombre, dni, legajo);
		setLegajo(legajo);
		lstMaterias = new ArrayList<Materia>();
		pilaMaterias = new PilaVector();

	}

	public Alumno() {
		pilaMaterias = new PilaVector();
	}

	public String getLegajo() {
		return legajo;
	}

	public void setLegajo(String legajo) throws MyException {
		if (legajo == null)
			throw new MyException("El legajo no puede ser nulo");
		this.legajo = legajo;
	}

	public String listarMaterias() {
		String datosMateria = "";
		for (Materia materia : getLstMaterias()) {
			datosMateria += materia.toString() + "\n";
		}
		return datosMateria;
	}

	@Override
	public double calcularPromedio(int nota1, int nota2) {
		double nota;
		nota = (nota1 + nota2) / 2;
		return nota;
	}

	public Pila getPilaMaterias() {
		return pilaMaterias;
	}

	public void setPilaMaterias(Pila pilaMaterias) {
		this.pilaMaterias = pilaMaterias;
	}

	public String toString() {
		return "Apellido:  " + getApellido() + "\n" + "Nombre: " + getNombre()
				+ "\n" + "DNI: " + getDni() + "\n" + "Leg: " + getLegajo()
				+ "\n" + "Materias a las que esta inscripto: "
				+ listarMaterias();
	}

}
